package com.itcast.demoone.kotlin

fun main() {

    val person = Person2("张三方", -18)
    person.intro()

    val person2 = Person3("", -18)
    person2.intro()
}

/**
 * 主构造函数
 */
// 1. 显式主构造函数
class Person2 constructor(var name: String, var age: Int) {

    init {
        // 初始化的验证
        println("初始化")
        require(name.isNotEmpty()){ "姓名不能为空" }
        require(age > 0){ "年龄不能小于0" }
    }

    fun intro(){
        println("我的名字叫$name,今年${age}岁")
    }
}


// 2. 隐式主构造函数
class Person3(var name: String, var age: Int) {
    init {
        // 初始化的验证
        println("初始化")
        require(name.isNotEmpty()){ "姓名不能为空" }
        require(age > 0){ "年龄不能小于0" }
    }

    fun intro(){
        println("我的名字叫$name,今年${age}岁")
    }
}